###########################################################################
CXX=g++ 
CC=$(CXX)
###########################################################################
LIST:= ./common ./util ./log ./protocol ./main ./src/app
SOURCE_LIST:= ./common ./util ./log ./protocol ./main ./src/app
 
OBJECT:=./oms
SOURCES:=$(foreach list,$(SOURCE_LIST),$(wildcard $(list)/*.cpp))
VPATH:=$(foreach list,$(LIST),$(list))
#$(warning $(VPATH))
DELETE:=$(patsubst %.cpp,%.o,$(SOURCES))
DELETE+=$(patsubst %.cpp,%.d,$(SOURCES))
override CXXFLAGS+=-D_LINUX__
override CXXFLAGS+=$(patsubst %,-I%,$(subst ,,$(VPATH)))
override CFLAGS+=$(CXXFLAGS)
override LDFLAGS+=-rdynamic
override MAKEFLAGS += -s
############################################################################
$(OBJECT):$(patsubst %.cpp,%.o,$(SOURCES))
	$(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $^ -lrt -lpthread -I,-Bdynamic
###########################################################################
%.d:%.cpp
	$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
	sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
	rm -f $@.$$$$
-include $(SOURCES:.cpp=.d)
###########################################################################
.PHONY:clean
clean:
	rm $(DELETE) -f
	rm $(OBJECT) -f